package club.jdiy.core.job.config;

import lombok.extern.slf4j.Slf4j;
import org.quartz.JobExecutionContext;
import org.quartz.Trigger;
import org.quartz.TriggerListener;

////JDiy triggerListener暂未使用
@Slf4j
public class QrtzTriggerListener implements TriggerListener {

    private String timerTriggerName="";

    public QrtzTriggerListener(String timerTriggerName) {
        this.timerTriggerName = timerTriggerName;
    }

    @Override
    public String getName() {
        return timerTriggerName;
    }

    //触发器触发完成
    //(4) 任务完成时触发
    @Override
    public void triggerComplete(Trigger arg0, JobExecutionContext arg1, Trigger.CompletedExecutionInstruction arg2) {
        // TODO Auto-generated method stub
        log.info("触发器触发完成");
    }
    //触发器被触发
    //(1)Trigger被激发 它关联的job即将被运行
    @Override
    public void triggerFired(Trigger arg0, JobExecutionContext arg1) {
        // TODO Auto-generated method stub
        log.info("Trigger被激发 它关联的job即将被运行");
    }
    //触发器触发失败
    //(3) 当Trigger错过被激发时执行,比如当前时间有很多触发器都需要执行，但是线程池中的有效线程都在工作，那么有的触发器就有可能超时，错过这一轮的触发。
    @Override
    public void triggerMisfired(Trigger arg0) {
        // TODO Auto-generated method stub
        log.info("触发器触发失败(错过xxxxxxx)");
    }
    //(2)Trigger被激发 它关联的job即将被运行,先执行(1)，在执行(2) 如果返回TRUE 那么任务job会被终止
    @Override
    public boolean vetoJobExecution(Trigger arg0, JobExecutionContext arg1) {
        // TODO Auto-generated method stub
        return false;
    }
}